home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / util / boot / IfNoDrive.lha / IfNoDrive.e next >
Encoding:
Text File  |  1997-08-28  |  1.0 KB  |  48 lines

  1.  
  2. MODULE 'dos/dos', 'dos/dosextens'
  3.  
  4. PROC main()
  5.  
  6.     DEF drive_present=TRUE, reboot, delay,
  7.         args:PTR TO LONG, rdargs, ret=0,
  8.         drive_name[100]:ARRAY OF CHAR, dos_list:PTR TO doslist
  9.  
  10.     IF rdargs:=ReadArgs('DEVICE/A,REBOOT/S,DELAY/N', args:=[NIL, FALSE, 0]:LONG, NIL)
  11.  
  12.         AstrCopy(drive_name, args[0], 100)
  13.         reboot:=(args[1]<>NIL)
  14.  
  15.         delay:=Long(args[2]); IF delay<0 THEN delay:=0; IF delay>20 THEN delay:=20
  16.  
  17.         FreeArgs(rdargs)
  18.  
  19.         IF (dos_list:=LockDosList(LDF_READ OR LDF_ALL))
  20.  
  21.             drive_present:=FindDosEntry(dos_list, drive_name, LDF_ALL)
  22.  
  23.             UnLockDosList(LDF_READ OR LDF_ALL)
  24.  
  25.             IF (drive_present=FALSE)
  26.  
  27.                 IF reboot;  Delay(delay * TICKS_PER_SECOND); ColdReboot()
  28.                 ELSE;       ret:=5
  29.                 ENDIF
  30.  
  31.             ENDIF
  32.  
  33.         ENDIF
  34.  
  35.     ELSE
  36.  
  37.         WriteF('Bad/missing arguments. Type \aIfNoDrive ?\a for the command template.\n')
  38.         ret:=20
  39.  
  40.     ENDIF
  41.  
  42. ENDPROC ret
  43.  
  44. CHAR '$VER: IfNoDrive 0.5 (13.8.97)\0'
  45.  
  46.  
  47.  
  48.